package ink.lovejinhu.think.bits;

/**
 * @author jinhu
 * created 2021-07-06 11:14
 */
public class ThinkBits {
    /**
     * 一直对于位运算的题目做的不是很理想，总结一下
     * 与&：0&0=0 0&1=0 1&0=0 1&1=1
     *
     * 或|：0|0=0 0|1=1 1|0=1 1|1=1
     *
     * 异或^：0^0=0 0^1=1 1^0=1 1^1=0
     *
     * 取反~：~1=0 ~0=1
     *
     * 左移<<：左边的二进制位丢弃，右边补0
     *
     * 右移>>：正数左补0，负数左补1，右边丢弃
     *
     * 无符号左移<<<：左边的二进制位丢弃，右边补0
     *
     * 无符号右移>>>：忽略符号位，空位都以0补齐
     *
     *
     */
    public static void main(String[] args) {
        int i = 0 >> 1;
        System.out.println(i);
        int i1 = 1 >> 1;  //  00000000  00000000  00000000 00000001
        System.out.println(i1);
        System.out.println(1<<3);
        System.out.println(3>>1);
    }
}
